1. Field of the Invention
The present invention generally relates to a method of adjusting interrupt frequency. Specifically, it is related to a method of automatically adjusting an interrupt interval by rectifying the interrupt frequency error.
2. Description of Related Art
Previously, real time control was mostly applied in research and design of computer architectures for artificial intelligence applications or workstations. Recently, the executing speed and performance of the personal computer have been extensively improved, and thus it is possible that real time control to be implemented in the personal computers to conduct research faster, thereby saving cost.
The most significant bottleneck in the application of real time control to the personal computer is how to obtain real interrupts in which the time interval between two interrupts is about few micro second (ms). Thus far, real interrupts with a few ms time interval play an important role in industrial and military fields. In general, there are two methods, software or hardware, to achieve such real interrupts.
For example, using the software method, a timer for counting the interrupts can be applied to conduct timing for many applications, for example producing games, multimedia applications, and even the hold responses of connection programs used in networks. Additionally, the expiry time built into the shareware is also determined by the timer.
Current system chips in personal computers send approximately one interrupt request per 55 ms, i.e., 18.2 requests per second. In fact, for program software like Microsoft Virtual Basic or Borland Delphi, if the interrupt interval is required to be 10 ms, such program software still supplies 55 ms as an interrupt interval. The reason is that the timer applied in current program software generates an interrupt note every 18.2 ms to the computer system according to DOS, in which the Interrupt Service Routine (ISR) is called for by the program software.
Table 1 shows results of an interval comparison, in which required interrupt intervals are 1 ms, 10 ms, 20 ms, 50 ms, 100 ms, and 1000 ms, in two operating systems, Windows 95 and Windows NT. It is obvious that the various interrupt intervals generated by the timer of such program software can not achieve strict precision.
On the other hand, using the hardware method, an interface, for example the interface card PCL830 manufactured by Advantech, may be added into the computer system to provide an accurate interrupt interval. However, several disadvantages still exist. First, the computer system needs to provide an extra interrupt request (IRQ) for such an interface. Moreover, a driver program must be designed to match the software program and thus the cost of the hardware and/or software increases.
It is therefore an object of the present invention to provide a method of adjusting an interrupt interval (or interrupt frequency) dynamically. Through the method disclosed in the present invention, the resolution of the precision of the interrupt interval for the computer system can be improved to a micro-second degree.
The method of dynamically adjusting the interrupt interval for a computer system comprises following steps. First, provide a computer system with an operating system able to deliver a plurality of interrupts with a first interrupt frequency. Then a counter is used to count a number of occurrences of said interrupt until said number reaches a predetermined number, and then reset said counter to zero. Next, divide said predetermined number by said first interrupt frequency to obtain a product, and calculate an error between said product and a period of time that said predetermined number of interrupts actually took. Lastly, detect whether said error exceeds a predetermined range so as to adjust said first interrupt frequency for limiting said error within said predetermined range.